// Machine generated IDispatch wrapper class(es) created with ClassWizard
/////////////////////////////////////////////////////////////////////////////
// IeDasComPlus wrapper class

class IeDasComPlus : public COleDispatchDriver
{
public:
	IeDasComPlus() {}		// Calls COleDispatchDriver default constructor
	IeDasComPlus(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
	IeDasComPlus(const IeDasComPlus& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}

// Attributes
public:

// Operations
public:
	void AS_ApplyUpdates(LPCTSTR ProviderName, const VARIANT& Delta, long MaxErrors, long* ErrorCount, VARIANT* OwnerData);
	void AS_GetRecords(LPCTSTR ProviderName, long Count, long* RecsOut, long Options, LPCTSTR CommandText, VARIANT* Params, VARIANT* OwnerData);
	void AS_DataRequest(LPCTSTR ProviderName, const VARIANT& Data);
	void AS_GetProviderNames();
	void AS_GetParams(LPCTSTR ProviderName, VARIANT* OwnerData);
	void AS_RowRequest(LPCTSTR ProviderName, const VARIANT& Row, long RequestType, VARIANT* OwnerData);
	void AS_Execute(LPCTSTR ProviderName, LPCTSTR CommandText, VARIANT* Params, VARIANT* OwnerData);
	long AsyncAuthCheckCode(LPCTSTR TokenSN, LPCTSTR Challenge, LPCTSTR Response);
	long AsyncAuthGetChallenge(LPCTSTR TokenSN, VARIANT* OutChallenge);
	long SyncAuthCheckCode(LPCTSTR strSn, LPCTSTR strPwd);
	long UnlockGenerateCode(LPCTSTR strSn, LPCTSTR strChanCode, BSTR* strResp);
	long UpdateAuthenticationEventCounter(LPCTSTR strSn, LPCTSTR strValue);
	long UpdateDeviceOffset(LPCTSTR strSn, LPCTSTR strValue);
	long GetParamater(LPCTSTR name, VARIANT* value);
	long SetParamater(LPCTSTR name, LPCTSTR value);
	long TokenStatusModify(LPCTSTR TokenSN, LPCTSTR Status);
	long AddTokenSDB(LPCTSTR TokenSN, const VARIANT& vSDB, const VARIANT& vTokenInfo);
	long TokenStatus(LPCTSTR TokenSN, VARIANT* Status);
	long UserGetTokenSN(LPCTSTR UserName, VARIANT* TokenSN);
	long UserEnableToken(LPCTSTR UserName, LPCTSTR TokenSN);
	long UserDisableToken(LPCTSTR UserName);
	long TokenGetUserName(LPCTSTR TokenSN, VARIANT* UserName);
	long DeleteParamater(LPCTSTR ParamName);
	long GetUsersList(LPCTSTR Dept, VARIANT* UsersList);
	long GetDeptList(BSTR* retstr);
	long GetTokenListByDept(LPCTSTR Dept, VARIANT* TokenList);
	long GetStatusInfoByDept(LPCTSTR Dept, VARIANT* StatusInfo);
	long GetStatusInfoByToken(LPCTSTR TokenSN, VARIANT* vTokenInfo);
	long AddDept(LPCTSTR DeptName, LPCTSTR DeptDesc);
	long DeleteDept(LPCTSTR DeptName);
	long GetUserInfo(LPCTSTR UserName, LPCTSTR Dept, VARIANT* UserInfo);
	long SaveUserInfo(const VARIANT& UserInfo);
	long DeleteUserInfo(LPCTSTR UserName, LPCTSTR Dept);
	long AddLogRecord(const VARIANT& vLogInfo);
	long UserSyncAuthCheck(LPCTSTR strDept, LPCTSTR strUser, LPCTSTR strPwd);
	long GetTokenList(BSTR* retstr);
	long AddUserInfo(LPCTSTR UserName, LPCTSTR UserDesc, LPCTSTR DeptName, LPCTSTR Sn, LPCTSTR Sn1, LPCTSTR UserRights);
	long DeleteUser(LPCTSTR Dept, LPCTSTR user);
	long UpdateTokenState(LPCTSTR strSn, LPCTSTR strState);
	CString GetUserListByDept(LPCTSTR strDept);
	long UpdateUserInfo(LPCTSTR strDept, LPCTSTR strNameOld, LPCTSTR strNameNew, LPCTSTR strDesc, LPCTSTR strSnOld, LPCTSTR strSnNew, LPCTSTR strRights);
	long AddToken(VARIANT* strBuf, long strLen);
	long UpdateDept(LPCTSTR strDeptOld, LPCTSTR strDeptNew);
	long UpdateToken(LPCTSTR strSn, VARIANT* strBuf, long strLen);
	long SycAuthTest(LPCTSTR strSn, LPCTSTR strPwd);
	long GetSysUserPwd(LPCTSTR strUser, LPCTSTR pPwd, BSTR* pRights);
	long GetTokenSDB(LPCTSTR strSn, VARIANT* outBuf, long* outLen);
	long DeleteSDB(LPCTSTR strSn);
	long UserSycAuth(LPCTSTR strUser, LPCTSTR strPwd);
	CString GetUserInfoBySn(LPCTSTR strSn);
	long GetUserCountBySn(LPCTSTR strSn);
	long WriteLicenceFile(VARIANT* strBuf, long strLen);
	long UpdateUserPwd(LPCTSTR strDept, LPCTSTR strUser, LPCTSTR strPwd);
	long GetSysLog(LPCTSTR strUser, LPCTSTR bDate, LPCTSTR eDate, BSTR* retstr);
	long GetUserLicenses();
	long AddIp(LPCTSTR ipAddr, LPCTSTR ipDesc, LPCTSTR IpKey);
	long DelIp(LPCTSTR ipAddr);
	long UpdateIp(LPCTSTR OldIp, LPCTSTR NewIp, LPCTSTR ipDesc, LPCTSTR IpKey);
	long GetIpList(BSTR* retstr);
	long GetAcctPort();
	long GetAuthPort();
	long SetRadiusPort(LPCTSTR strType, LPCTSTR strPort);
	long GetIpKey(BSTR* retstr);
	long SetMiniTokenPINPolicy(LPCTSTR strDefPIN, long iPINPosition, long iMinPINCodeLen, long iMaxPINCodeLen, long iPINAssignment, LPCTSTR bstrPinSetFlay);
	long GetMiniTokenPINPolicy(BSTR* pbstrDefPIN, long* piPINPosition, long* piMinPINCodeLen, long* piMaxPINCodeLen, long* piPINAssignment, BSTR* pbstrPinSetFlay);
	long SetPinCode(LPCTSTR strSn, LPCTSTR strPinCode);
	void IsExistMiniToken();
	void IsMiniToken(LPCTSTR bstrSn);
	void GetSearchResultsPage(LPCTSTR bstrTableName, LPCTSTR bstrSearchColumns, LPCTSTR bstrKeyWords, LPCTSTR bstrFilter, LPCTSTR bstrGetColumns1stForSort, unsigned long ulPageNo, unsigned long* pulPageSize, unsigned long* pulPagesCount, 
		BSTR* pbstrPageData);
	void GetTokensInfo(long* piTotalCount, long* piInUseCount, long* piIdleCount, long* piDisabledCount, long* piAssignedUsersCount);
};
